package com.shop.item.api.service;


import com.shop.common.model.InputBean;
import com.shop.common.model.ServiceBean;
import com.shop.common.model.param.item.ItemBaseInput;
import com.shop.common.model.param.item.ItemDetailsInput;
import com.shop.common.model.result.item.ItemBaseOutput;
import com.shop.item.api.model.Item;

import java.util.List;
import java.util.Map;

/**
 * @Author zhoulk
 * @Description //商品服务
 * @Date 11:18 2019/1/16
 **/
public interface IItemService {
    /**
     * @return com.shop.common.model.ResultModel<?>
     * @Author zhoulk
     * @Description //新增商品
     * @Date 10:54 2019/1/16
     * @Param [paramModel]
     * @errorCode //TODO
     **/
    ServiceBean<Integer> addItemBase(InputBean<ItemBaseInput> inputBean);

    /**
     * @return com.shop.common.model.ResultModel<?>
     * @Author zhoulk
     * @Description //添加商品sku
     * @Date 16:21 2019/1/16
     * @Param [paramModel]
     * @errorCode //TODO
     **/
    ServiceBean<Integer> addItemDetails(InputBean<ItemDetailsInput> inputBean);

    /**
     * @return com.shop.common.model.ResultModel<?>
     * @Author zhoulk
     * @Description //删除商品
     * @Date 11:10 2019/1/16
     * @Param [paramModel]
     * @errorCode //TODO
     **/
    ServiceBean<String> deleteItemByItemId(InputBean<Integer> inputBean);

    ServiceBean<String> deleteItemBySelective(InputBean<ItemBaseInput> inputBean);

    /**
     * @return com.shop.common.model.ResultModel<?>
     * @Author zhoulk
     * @Description //查询商品详情
     * @Date 11:11 2019/1/16
     * @Param [paramModel]
     * @errorCode //TODO
     **/
    ServiceBean<?> selectItemDetails(InputBean<?> inputBean);

    /**
     * @Author zhoulk
     * @Description //查询商品
     * @Date 15:37 2019/3/11
     *
     * @Param [paramModel]
     * @return com.shop.common.model.ResultModel<com.shop.item.atom.model.Item>
     * @errorCode //TODO
     **/
    ServiceBean<Item> selectItem(InputBean<ItemBaseInput> inputBean);


    /**
     * @Author zhoulk
     * @Description //前台浏览商品信息
     * @Date 15:37 2019/3/11
     *
     * @Param [paramModel]
     * @return com.shop.common.model.ResultModel<com.shop.common.model.result.item.ItemBaseOutput>
     * @errorCode //TODO
     **/
    ServiceBean<ItemBaseOutput> browserItem(InputBean<ItemBaseInput> inputBean);

    /**
     * @return com.shop.common.model.ResultModel<?>
     * @Author zhoulk
     * @Description //查询商品列表
     * @Date 11:11 2019/1/16
     * @Param [paramModel]
     * @errorCode //TODO
     **/
    ServiceBean<List<Item>> selectItemList(InputBean<ItemBaseInput> inputBean);

    /**
     * @return com.shop.common.model.ResultModel<?>
     * @Author zhoulk
     * @Description //分页查询商品列表
     * @Date 11:11 2019/1/16
     * @Param [paramModel]
     * @errorCode //TODO
     **/
    ServiceBean<Map<String, Object>> selectItemList4P(InputBean<ItemBaseInput> inputBean);


    ServiceBean<String> mdfItemStatus(InputBean<ItemBaseInput> inputBean);
}
